約 6,566,810 件
https://w.atwiki.jp/jeskolabuzz/pages/19.html
Controller コントローラー、machineのパラメーターを操作するためのmachine。 基本的に、入力接続も出力接続もできず、パラメーターをアサインして使う。 BTDSys PeerCtrl? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 BTDSys PeerCtrl Basic ? 入手 可 動作 ノート ヘルプ 有 ソースコード ? 情報求む。 BTDSys Peer LFO? 入手 可 ヘルプ 有 ソースコード ? アサインしたパラメーターに対し、LFOで変調を掛ける。 BTDSys PeerADSR? 入手 可 動作 ノート ヘルプ 有 ソースコード ? アサインしたパラメーターに対し、ADSRタイプのエンベロープを掛ける。 GUIつきで、マウスでエンベロープを書くことも可能。 BTDSys PeerState? 入手 可 http //www.buzzmachines.com/machineinfo.php?id=851]] ヘルプ 有 ソースコード ? アサインされたmachineの状態を記録、記録された状態を復元できる。 BTDSys PeerChord? 入手 可 動作 ノート ヘルプ 有 ソースコード ? アルペジエイター。カスタムコードを指定できる。 ノートのみを分離し、編曲をやりやすくするという用途もある。 BTDSys PeerChord Lite? 入手 可 動作 ノート ヘルプ 有 ソースコード ? アルペジエイター。PeerChordの軽量、低機能版。 カスタムコード指定機能が省かれている。 BTDSys PeerScale? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 kibibu PeerTune? 入手 可 ヘルプ 有 ソースコード ? 特定のGeneratorのスケールを操作することができる。 BTDSys PeerEnv? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 HD_LFO, HD LFO? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 intoxicat 8n? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 jmmcd Peer Meta-I? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 jmmcd Peer Note-Pool? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 kazuya Graph-64? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 LnB PeerTrigger? 入手 可 ヘルプ 有 ソースコード ? 入手先 ドラムマシンのトリガ情報を分離し、他のGeneratorで使いまわすことができる。 また、入力された音源からトリガを生成することもできる。 7900s XY Controller? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 kazuya JC-4? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 kazuya Midi 2 Peer C2? 入手 可 ヘルプ 有 ソースコード ? MiDiファイルを読み込み、アサインされたGeneratorを鳴らす。 KoDreamImprov? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 Quence PyBuzz? 入手 可 ヘルプ 有 ソースコード ? 情報求む。 usr n+1 peer? 入手 可 ヘルプ 有 ソースコード ? 情報求む。
https://w.atwiki.jp/vippc2/pages/54.html
Intel 系 SSD +クリックで展開 特徴 サポートや資料・各種ツール完備で特に過去のバグやリリースノート等他社ではあまり公開されない事柄も公式ページで公開され誰でも確認出来導入事例も多いので、ファームウェアのバグは多々見受けられるもののトラブルが発生しても対処し易い。東芝程は手軽ではないものの各種設定をしなければまともに使用できなかった黎明期の MLC 採用 SSD とは一線を画する完成度を誇る。 ベンチスコアを重視しホストからの要求を最優先で処理する設計思想の為ベンチではスコアが高くレイテンシも低いが、その分速度低下もあり物理アドレスの断片化を解消する為に時々 GC が行われ、その瞬間はレイテンシが高くなる。G2 以降であれば Trim コマンドに対応したドライバを使用している環境限定であるが Intel SSD Tool BOX を使用して Windows XP や VISTA でも Trim コマンドを発行出来、Trim コマンドの効果が高いので速度低下は最小限に留める事が出来、パーティションアライメントの影響は殆ど無い。またキャッシュにはコントローラー内部の SRAM を使用しており、外部に接続されている SDRAM ワークメモリとしてのみ使用され、ワークメモリにはユーザーデータは保存されない。また NAND フラッシュメモリが 5/10ch 接続の為容量は他社製のように 32/64/128…と二の累乗数ではなく 40/80/120/160…という特徴的なラインナップになっている。 Intel は本格的なエンタープライズ向け SSD はリリースしていないが、GB 単価はそれほど高くなく QD=32 時のパフォーマンスが高くモニタリングに必要な SMART の機能が充実しており仕様が公開されている為、高価な SLC 採用のエンタープライズ向け SSD やハードウェア RAM DISK を導入しにくいエントリーサーバーに採用される例がある。クライアント PC にはほぼ無関係な NCQ だがサーバー用ソフトウェアでは積極的に非同期 I/O を使用するものが多い為 NCQ のパフォーマンスが重要となる。しかし Trim コマンド非対応の OS を使用した 2ch のサーバーへの導入事例では度々フリーズする現象が発生しており、Trim コマンドが使用できない環境や、ファームウェアのバグ等が原因でフリーズが発生すると損害が発生するような用途への導入はお勧め出来ない。 対応OS 全ての Trim 対応 OS と Windows XP/Server2003/Vista/Server2008 RAID 不可 (予備領域を増やした場合は可) その他 ファームウェアアップデート可能な環境である事 インテルR Solid-State Drive (日本語) Intel D.I.Y スクエア-SSD (日本語) Intel 保証規定 (日本語、PDF、OEM 品は除く) Intel SSD 公式ページ(英語) Intel Solid-State Drive Info Center (英語) Intel Communities (英語) Intel Communities SSD の良くある質問 (英語) Intel Blog (英語) Intel SSD 型番一覧 (PDF) http //qdms.intel.com/MDDS/MDDSView.aspx Download.intel.com #twitter_widget_profile Intel の NAND フラッシュメモリ Intel NAND Flash 型番規則 (png) 主要な Intel の NAND フラッシュ 90nm 72nm 50nm 34nm 25nm 20nm 128Gbit 128M20 64Gbit 64M25 64M20 64S20 32Gbit MD332(Eastham) MD332B TD332 32M25 32S25 16Gbit MD516 (Manzanillo) MD316 8Gbit MD78 MD58 SD58B SQ58 4Gbit SD24 SD54 SD54B 2Gbit SS92 1Gbit SS91 M48A Intel は 25nm の 64M25 の内エンタープライズ向け (書き込み・消去回数 10,000 回) 品及び 25nm の SLC の 32S25 (書き込み・消去回数 100,000 回) より TSOP パッケージよりも周波数特性の優れた BGA パッケージ品を供給する。現在のロードマップでは 2011Q4 から供給される SLC の 64S20、MLC の 128M20 (双方とも 20nm) より ONFI 3.0 インターフェースを採用する。この他 ONFI 2.2 の 64M20 も予定されている。2011/5/4 Intel change packaging for NAND circuits for higher speeds 注意点 半導体の大御所ではあるものの、IDE/SATA ホストバスコントローラーの設計・製造経験はあっても HDD の設計・製造経験は無い事、製造は中国である事、過去にはバグがあるファームウェアやユーティリティを配布した事例 (HDD で同じ事をやれば会社が傾くくらいの大失態である) がある為、ファームウェア・ソフトウェアの更新や新機種に対しては注意を要する。ただ何らかの問題を発生させても Intel の場合は必ず何らかの対応を行うためデータは失う事があってもドライブ自体はゴミにはならない。 2009年7月28日:X25-M G2 の販売直後に BIOS パスワードの設定をするとSSD が使用不能になる問題が発覚、回収騒ぎ。1、2、3 2009年8月29日:X25-M G2 の販売再開。1 2009年10月27日:X25-M G2 の Trim 対応のファームウェアアップデートが公開されるが、適用すると SSD が使用不能になる問題。1、2 ※現在ではこれらのの問題は修正済み G1系、G2系共に使用頻度に関係なく突然「8MB病」を発症する可能性がある。症状は使用中に突然フリーズし再起動するとパーティションが消える・容量が制限される。容量が 8MB (8MB 以外の例もあり、80GB のドライブが 37GiB 認識になってしまった例もある) になる他、デバイス名がコードネーム表示になる・容量の表示がおかしくなるシリアルNo.が「NO_DEFMAP」や「BAD_CTX」になる等の特徴がある。ファームウェアアップデートは受け付けなくなる場合もある。SecureErase を行うと再び使用できるようになる場合もあるがデータは失う。この状態になった場合は保証にて交換が可能。 G1・G2・320 のダイキャストのケースは全数裏面の仕上げが悪く傷が目立つが機能には問題ない。凹凸が酷過ぎてノート PC にうまく収まらないといった実用上の問題がある場合には販売店か代理店に問い合わせる事。 2008 Future Compute Memory Non Volatile Memory (NVM) in Compute (PDF) 2009/5/11 ■元麻布春男の週刊PCホットライン■ もう1つのSSD 2009/7/27 Intel製SSDの性能と信頼性について、インテルの天野氏が解説 余計な書き込みを減らし寿命を確保している 2009/6/19■元麻布春男の週刊PCホットライン■IntelがSSDを手がける理由 "あくまでも Intel プラットフォームの一部" 2010/7/7 2010 年上半期の SSD のシェアの内約半分を Intel が占める。(パーツとして販売されたものに限る。PC 搭載分はカウントされない) 2011/3/28 時点で Intel 製 SSD はトータルでおよそ 100 万台弱出荷されており年間平均故障率は 0.4% 程度となっている。ファームウェアの完成度はともかくハードウェアレベルでは問題は抱えていない。但し 2011/2月時点で後発の SandForce 製 SSD コントローラーが 100万個出荷済みである事から順風満帆という訳ではない。 Hardware.fr による障害発生率の統計は以下の通り。比較対象に東芝・SanDisk・Samsung 等の大企業は含まれておらず中小のベンダーのみであるが、ファームウェアはともかくハードウェアレベルでの障害が発生する確率は十分に低いと見て良い。 Intel 0,59% Corsair 2,17% Crucial 2,25% Kingston 2,39% OCZ 2,93% Product Code 命名規則 +クリックで展開 例 Product Number 例 SSD SA 2 M H 080 G1 C1 意味 SSD ①インターフェース ②形状 ③NANDの種類 ④グレード ⑤容量 ⑥世代 ⑦パッケージ種類等 各項目の意味 該当箇所 記号 意味 ① PA PATA SA SATA 3Gbps SC SATA 6Gbps US USB MA mSATA ② 2 2.5" 1 1.8" E miniPCIe M Mini Card P Package on Package (PoP、BGA) ③ S SLC M MLC(50/34nm) C MLC(25nm) ④ H ハイパフォーマンス J "H"の新リビジョン P バリュー C SSD 310 W SSD 320 80GB以上 T SSD 320 40GB L ? 0 Reserved ⑤ * 容量(GB 単位) ⑥ G1 G1 G2 G2 G3 SSD 320 A2 SSD 510 ⑦※1 01/05 7.0mm※2、茶箱、付属品無し C1/C5/10 9.5mm、茶箱、付属品無し R5 9.5mm・化粧箱・3.5"変換マウンタ+ネジ、説明書入り 8cm CD-ROM or USB メモリ※3、ステッカー付属※3 K5 R5 に更に SATA 信号ケーブル、4pin ペリフェラル→ SATA 電源変換ケーブルを追加したもの B5 K5 に更に USB 3.0 変換ケーブル、シリコン製ケースを追加したもの。(ドライバーも付属しているという情報があるが不明) HP HP OEM LE Lenovo OEM DE DELL OEM? ※1:数字は仕入れ単位でエンドユーザーには関係無し。保証は正規国内代理店経由の品であればパッケージ種類に関わらず三年。よく茶箱=バルクという誤解を受けているが、パッケージ種類に関わらず正規代理店経由で販売されメーカー(代理店)保証が受けられるものはリテール品である。並行輸入物は保証が短い・無い場合がある。茶箱版は並行輸入物が混じっている事がある。正規代理店は現在 SYNNEX のみ確認。クレバリーでは末尾「C1-M」や「10-M」という型番を扱っているが、これは通常の末尾「C1」や「10」にクレバリーが独自にマウンタを付属させたものである。 ※2:G1/G2/320 等の厚さ 9.5mm 版は 厚さ 7.0mm 版に黒いプラスチックの枠 (スペーサー) を咬ませて厚みを調整してあるだけでそれ以上の差は無い。 ※3:ステッカーは 初期は「MY SSD LOCKS!」、2010 年秋頃のロットから「SPEED DEMON」。説明書入りメディアは 2010 年秋頃の X25-M G2 120GB 末尾 "K5"に USB メモリ(ingston DATA Traveler G2 4GB) が見られたが、それ以外は 8cm CD-ROM のようだ。(このあたりの情報は全数確認したわけではないので不明確) Intel 系 SSD OEM +クリックで展開 Intel の SSD は自社リテールの他、A-DATA、Adaptec、Buffalo、Kingston、PQI が OEM 販売していたが Intel 自社ブランド品の売れ行きのみが目立った為か現在では Adaptec、PQI 以外は取り扱いを終了している模様。流通在庫が安価で販売されている場合がある。その他 HP・Lenovo 等の主に外資系と EPSON Direct 等の PC に採用されており (容量が特殊なので容易に判別できる) これらの純正部品として流通する場合もある。これらの PC メーカー向け OEM 品は 7mm 厚でラベルの印字・デバイスネーム末尾が異なる場合が多い。(リテール向け品は G1/G2 の場合末尾"GC"や"GN") メーカー 該当機種 中身 A-DATA SINTS-80GM系 X25-M G2 Adaptec MAXcacheシリーズ X25-E G1+キャッシュソフト Buffalo SHD-NSMRシリーズ、SHD-NSMR80G X25-M G1 Kingston SSDNow E シリーズ SNE125-S2系 X25-E G1 SSDNow M シリーズ SNM125-S2系 X25-M G1 SSDNow M シリーズ SNM225-S2系 X25-M G2 SSDNow V シリーズ SNV125-S2/40GBのみ X25-V PQI X25-Mシリーズ 6526**********系 X25-M G2 S532-Eシリーズ 6532-XXXXXXXXX系 X25-V + USB2.0 外付けケース S533-Eシリーズ 6533-XXXXXXXXX系 X25-M G2 + USB3.0 外付けケース EPSON Direct 採用機種例 その他多数 HP 採用機種例 その他多数、HP 搭載分はデバイスネーム末尾"HP"。他のメーカーの SSD 搭載機種もあり Lenovo の採用機種は ThinkCentre M90、M90p 等。Lenovo 搭載分はデバイスネーム末尾"LE"。他のメーカーの SSD 搭載機種も多い HGST (Westen Digital) 系 SSD +クリックで展開 HGST は 2008 年末に Intel とエンタープライズ向け SSD の共同開発に乗り出す事を宣言。2010 年 11 月に SAS / FC-AL インターフェースの SSD を発表した。SSD コントローラー・NAND フラッシュメモリ共に Intel 製の為こちらに記載する。SATA でノート PC への搭載を前提とした 2.5"7mm 厚 の X25-E (Extream) とは異なり本格的なエンタープライズ向け SSD として期待出来る。→-2011/3/7 WD による HGST の買収について - 株式の譲渡は 2011/9 迄に完了する予定とされている。SSD がどうなるかは不明 HGST model number 命名規則 model number H U S SL 40 40 A S S6 0 0 意味 Hitachi Ultrastar Standard SLC シリーズ最大容量(GB)/10 容量(GB)/10 世代 S=Small Form FactorL=Large Form Factor S6=SAS6GbpsF4=FCAL Reserved Reserved Intel 系 SSD Product Code 命名規則 Intel 系 SSD OEM HGST (Westen Digital) 系 SSDIntel SSD TOOL BOX Intel SSD ファームウェアアップデートツール Intel Data Migration Software powered by Acronis Intel Rapid Storage Technology (IRST) RST SSD Caching /Smart Response Technology (SRT) Intel 系 SSD の S.M.A.R.T.の値の読み方 Intel SSD 固有のテクニックほか HGST (Westen Digital) Ultrastar SSD400S シリーズ Intel SSD TOOL BOX +クリックで展開 Windows 7 以前の OS でも Trim コマンドを発行 (Optimizer) できるツール。RAID モードにも対応しているが、RAID ボリュームに対しては Trim コマンド発行は不可能。他に SecureErase (非ブートドライブのみ) や SMART ステータスの確認・診断も出来る。最新版で追加された"System Configuration Tuner"では Windows の Superfetch/Prefetch、ReadyBoost、デフラグと DIPM (SATA LPM の内 SSD 側が主体で実行されるもの) を無効にする事が出来る。 Intel の解説によると Optimizer (Trim) 機能を使用するには AHCI モードかつドライバとして Intel Rapid Storage Technology か Windows 7 標準 AHCI ドライバがインストールされている必要があるとされているが、実際には Trim コマンドをサポートしたドライバであれば IDE/AHCI モードの別なく Optimizer は動作しているかのように振舞う (実際に効果があるかは不明)。 ダウンロード(ver2.0.2.000) TOOL BOX に関しての FAQ(英語) 必要環境 対応機種 X25-M/X25-V/X18-M の G2 かつファームウェア 02HA 以降SSD 310/320SSD 510或いはそれ以降の機種 対応 SATA 接続モード AHCI、RAID モード (IDE モードでも動作するUSB 等にインターフェースを変換した場合認識されない) 対応ファイルシステム Trim コマンドを発行するボリュームは 非 RAID ボリュームである事フォーマットが NTFS でダイナミックディスクで無い事(ver2.0時点) 対応OS .NET Framework 2.0 がインストール済みの Windows XP、VISTA、7 の各 32/64bit 版 対応ドライバ IRST (それ以外の Trim コマンド対応ドライバでも動作する) ※ Optimizer は Windows のタスクスケジューラを利用したスケジュール機能があるので一旦設定すれば意識する必要なし。必要な頻度は使用状況 (毎日大量のデータを削除する環境程こまめに行った方が良い) によって大きく変わるが毎日~週一程度。 更新履歴(リリースノートより) リリース日時 リビジョン 詳細 2009/10/26 1.1 初公開 2009/12/21 1.2 使用不能なシステム復元ポイントの問題を修正diagnostic と Optimizer のプログレスバー追加(バグの為日本語 XP 環境で Optimizer 使用不可) 2010/3/22 1.3 バグ修正 2010/9 2.0 新機能"System Configuration Tuner"、"Secure Erase"を追加 2010/10 2.01 SecureErase の改良とバグ修正 2011/3/23 2.02 SecureErase の改良 Intel SSD ファームウェアアップデートツール +クリックで展開 Intel の各種 SSD のファームウェアをバージョンアップ出来るブート CD-R の ISO イメージ。CD-R ドライブと CD-R メディアが必要。(Windows 7 未満の OS であれば iso イメージを扱える CD-R ライティングソフトも必要。DeepBurner Portableあたりが手軽) CD-R 作成後はこの CD-R から PC を起動するとファームウェアのバージョンアップが出来る。DOS/V 機であれば動作するので x86 の Mac でも使用可。 このファームウェアアップデートツールは FreeDOS + DOS ベースのアップデートツールで構成されており、iso イメージを展開しファイルを抽出して 4MB 以上の容量がある USB メモリに突っ込んでも使用可能。 (iso イメージを展開する際は Universal Extractor を使用しないとうまくファイルを抽出できない場合がある。USB メモリは必ずリンク先のツールでフォーマットする事。) 注意 IDE モード (Legacy/Compatibility) と AHCI モードのみ対応、RAID モードや "IRRT" "Native + IDE" 等の設定ではファームアップ不可 ファームアップ対象の SSD はサウスブリッジ内蔵 SATA コントローラーのポートに接続する事。外付け SATA コントローラー・SATA インターフェースカード・各種インターフェース変換チップ経由では認識されない場合がある。 例外:MSI の K9A2 で使用する場合は SSD は ポート 1 か 2 に接続しないと認識されない 例外:Lenovo ThinkPad T410・T510、IdeaPad Y460 の場合 AHCI モードでは認識されないので IDE モードにする必要がある 例外:Nvidia チップセットの場合は AHCI モードではアップデートできない場合があるので IDE モード推奨 機種 更新後のファームウェアバージョン X25-M (G1、50nm) 045C8820 にアップデート X25-E (G1、50nm) 045C8855 にアップデート X25-M・V/X18-M (G2、34nm) 2CV102M3 にアップデート ※記載の無い機種はアップデートは無い 現在の最新版は v1.7(2011/01/26) ダウンロード Lenovo PC 向け X25-M G2 の Lenovo 搭載分向けの USB フラッシュメモリ向けファームウェアアップデートツール。解凍して出てきたファイルを DOS のシステムファイルが入った起動可能な USB メモリにコピーし、DOS 上でコマンド「FW31 /a」を実行するとファームウェアのアップデートが出来る。バージョン 2CV102M3 にアップデートされるが Intel 純正のアップデートツールとファイル内容に相違がある為あくまで該当機種のみでの利用をお勧めする。 Lenovo 文書番号 MIGR-76694 Lenovo 文書番号 MIGR-69806は Samsung 製 SSD 向けであるので適合しない。 Intel Data Migration Software powered by Acronis +クリックで展開 Intel ブランドの SSD 限定で動作する Acronis の OEM のパーティションコピーソフト。HDD のシステムドライブを SSD に移行出来るがパーティションアライメントが考慮されているかは不明。1152 x 864 以上の解像度が推奨されている。 解説 ダウンロード Intel Rapid Storage Technology (IRST) +クリックで展開 Intel Matrix Storage Manager の後継で RAID 管理機能を備えた Intel チップセット専用ドライバ。Trim コマンドに対応しており SSD TOOL BOX を併用する事で Windows XP や Vista でも Trim が使用可能。(このドライバ単体では Trim コマンドを発行する事は出来ない)。.NET Framework 3.0 が必須。 OS を新規にインストールする場合は SATA を AHCI モードにし、XP 以下の場合インストール時に F6 キーを押し、Vista 以降の場合は「インストール場所の選択」画面から画面左下の「ドライバの読み込み」をクリックし IRST の F6 インストール用の RAID コンソールの無い簡易版のドライバを読み込ませて OS インストールを完了させ、Windows 起動後にインストーラー版の IRST をインストールすること。尚 Windows Vista 以降では AHCI モード用のインボックスドライバが組み込まれているので対応チップセットならば特に F6 インストール用簡易ドライバを別に読み込ませなくとも OS のインストールは可能.。 IRST の起動が遅い場合は Intel Rapid Storage Technology のサービスのスタートアップの種類を「自動(遅延開始)」から「自動」に変更する事。 バージョン 10.1.0.1008 では単体で 2 TiB 以上の容量を持つ HDD は単体でのみ使用可能。2TiB を超える RAID ボリュームを作成する事は出来ない。バージョン 10.5.*.**** 以降から 2TiB 以上の RAID ボリュームに対応する。インストーラー版の 10.1.0.1008 での代表的な不具合として一部の環境で光学ドライブを見失うというものがある (その他詳細はリンク「人柱用最新版」のリンク先のリリースノート参照)。 IRST は SATA LPM に対応しているが SSD 側に SATA LPM 関連のバグがあると数秒のフリーズが多発するのでその場合はレジストリを編集して SATA LPM を無効にするか 旧バージョンの 9.6.0.1014 を使用する事 IRST の SATA LPM 無効化方法 regedit を起動し以下のキーに移動する。(無ければ作成する) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters\Port0 (ポート番号は SSD を接続しているポートを選ぶ事。全てのポートを無効にしても動作に問題は無いが消費電力が増す) (ドライバファイルが iaStorV の場合 \iaStorV\Parameters\Port* のキーを参照する事) にある以下の各 DWORD 値を使途に合わせて変更する。ポートごとに個別に設定が必要である。 "DIPM"______DIPMの有効無効を設定____Enable 1、Disable 0 "LPM"_______HIPMの有効無効を設定____Enable 1、Disable 0 "LPMSTATE"__HIPMで要求するLPMの状態_Slumber 1、Partial 0 "LPMDSTATE"_DSATE時のLPMの状態______Slumber 1、Partial 0 ダウンロード 32bitOS 用 F6 インストールファイル 10.1.0.1008 64bitOS 用 F6 インストールファイル 10.1.0.1008 32/64bitOS共通インストーラー 10.1.0.1008 人柱用最新版 旧バージョン サポート情報 各バージョンの違い Trim 2TiB 超え RST SSD Caching 9.5 以下 SSD TOOL BOX のみ 非対応 非対応 9.6 SSD TOOL BOX Win7 10.0 10.1 AHCI モードのみ対応 10.5 AHCI RAID モード 対応 対応環境 対応OS Windows 2000 / Xp / 2003Server / Vista / 2008Server / Seven の 32/64bit 対応サウスブリッジ Intel の AHCI か RAID 対応のもの RST SSD Caching /Smart Response Technology (SRT) +クリックで展開 Intel のソケット LGA1155 に対応したチップセットである Z68 に搭載される機能。SSD を HDD のキャッシュとして設定しハイブリッド動作させる。キャッシュには Intel 製以外の SSD も指定可能。 システム要件 Intel Z68チップセット + Core i の組み合わせであること Windows Vista /Server 2008 以降の OS BIOS で RST Smart Storage caching を有効化し SATA の動作モードは RAID モード Intel RST 10.5 以上がインストールされている事 キャッシュとできる SSD の容量は 18.6GB~64GB キャッシュとできる SSD はシステムあたり 1 台まで 動作モードは OFF / Enhanced(Default) / Maximized の三種類があり、Enhanced では読み込み性能の向上、Maximized では更に信頼性を犠牲に書き込み性能が向上する。 Performance Dual Boot Safe Data Caching Enhanced Boot-timeRun-taime ReadPaging 有効 Write-Through Maximized Boot-timeRun-taime ReadsRun-taime WritesdPaging 無効 Write-Back Z68 チップセット搭載マザーボードは 2011/5/18 登場予定だが台湾では 12 日に販売される為レビューが見られるとの事 Intel Z68に搭載されるSSD Cachingの詳細 (北森瓦板) tom's Hardware のレビュー同じセクタに複数回アクセスする事により SSD 側にキャッシュされやや高速化するものの、SSD 単体で使用したほうが高速。また Enhanced と Maximized モードでのパフォーマンスの違いは Tom s Hardware のベンチマーク上では殆ど無い。Trim が使えないため速度低下する Intel の MLC の SSD では使い物にならない事を自覚していると見られ、SLC を採用した SSD 311 をリリースする。 エルミタ的速攻撮って出しレビュー Vol.79 エルミタ台湾特派員、「Z68 Express」マザーボードを買うこちらのベンチマークでは CrystalDiskMark が使用されており、Enhanced モードでは読み込みが、Maximized では書き込みも含めて高速化する様子がわかる。設定方法も紹介している。 Intel 系 SSD の S.M.A.R.T.の値の読み方 +クリックで展開 G1 以降の Intel SSD の S.M.A.R.T. の仕様は公式に公開されている。Marvll 製 SSD コントローラー搭載の SSD 510 も SMART の仕様はほぼ共通。SSD TOOL BOX で各値が確認できる他 Crystal Disk Info でも Intel SSD の S.M.A.R.T. 値の取得に対応している。各項目名は Clystal Disk Info が対応しているものは同じ表記にし、不明・ベンダ固有と表示される項目は Intel の資料に記載されている名称で表記してある。この表は現在 G1/G2/320/510 に対応している。 こちらのページの Trim を有効にした状態での X25-V を使った耐久テストにおける各数値の変化の様子を () 内に青字記載した。X25-M G2 系はファームウェアバージョン 2CV102M3 以降ではメディア消耗指数の減りがかなり遅くなる。 D.I.Y.Square Product_Specification (PDF)SSD 320SSD 510 Enterprise Server/Storage Application Product Specification Addendum (PDF)SSD 320 G1 とは X25-M G1、X18-M G1、X25-E の事 G2 とは X25-M G2、X28-M G2、SSD 310、SSD 311 の事 G3 とは SSD 320 の事 項目 項目名 値の区分 閾値 詳細 03 スピンアップ時間 Raw 0 0固定 04 スタート/ストップ回数 05 代替処理済のセクタ数 Raw(G2以降)Normalized(G1) 工場出荷後に代替されたフラッシュメモリーのブロック数。G2 以降では 1 ブロック代替される毎に値が 1 ずつ増加する(徐々に増加する) 09 使用時間 Raw 累積通電時間。省電力モード (DIPM) 時の時間は記録されない 0C 電源投入回数 電源のオン/オフの累積回数 AA Available Reserved Space(G3のみ) 10 異常な値を示した場合販売店か代理店に相談する事 AB Program Fail Count(G3のみ) 0 書き込み失敗した割合 AC Erase Fail Count(G3のみ) 消去失敗した割合 B8 エンドツーエンドエラー検出回数(G2/G3のみ) Raw 99 SSD 内部のデータの整合性チェック (LBA タグチェック)においてエラーが発生した回数正常品であればこの値は減少しない異常な値を示した場合は販売店か代理店に相談する事 C0 アンセーフシャットダウン回数 0 安全でない電源断が起きた累積回数 E1 総書き込み量 OS から見た総書き込み容量(つまり SSD 内部ではこの数値よりも多くの書き込みが発生している)32 MB 毎に 1 ずつ増加する E2 Timed WorkloadMedia Wear Indicator(G1/G2/G3のみ) 前回の Workload Timer (E4) 稼動時のドライブ側から見た消耗の進行具合(%)生の値を1024で割るとパーセンテージが得られる最大で小数点第三位まで記録されるE4 の Workload Timer が 60分になるまで値は FFFFh に固定される E3 Timed WorkloadHost Read/Write Ratio(G1/G2/G3のみ) 前回の Workload Timer (E4) 稼動時の全 I/O 中の読み込みの割合E4 の Workload Timer が 60分になるまで値は FFFFh 固定 E4 Workload Timer(G1/G2/G3のみ) 現在のワークロードの経過時間が分単位で記録されるSMART EXECUTE OFFLINE IMMEDIATE(D4h) subcommand 40hの発行でリセットされる E8 利用可能な予備領域[寿命] Normalized 10 予備領域の残存数値は正規化されており 100 から徐々に減っていく正常な範囲は 10 パーセントまで(減少速度はかなり遅い) E9 メディア消耗指数 0 フラッシュメモリーの平均消去回数平均消去回数が増えるにつれ正規化された値が100から1まで減少する値が 1 まで下がった後は数値は変化はしないが継続して使用すれば更にフラッシュメモリは消耗する。値が 2 の時点でのデータ保持期間は一年間G2 はファームウェア 2CV102M3 を適用するとやや数値が回復する(比較的早期から減少を始めるが、1 になった後も更に継続使用が可能)だが、一年未満の放置でデータ化けの可能性あり F1 Total LBAs Written(G3のみ) Raw OS から見た総書き込みセクタ数 F2 Total LBAs Read(G3のみ) OS から見た総読み取りセクタ数 ※ E1 は OS から見た書き込み量であり、SSD 内部では WA 分多く書き込みが発生している。X25-M G2 でパーティションアライメントが合っていてかつ 4KB 未満のブロックサイズの書き込みが一切発生していない環境であればワーストケースでも実際の書き込み量はこの値の 25 倍以下である。 ※ E9 は 34nm の X25-M G2 (ファームウェア 2CV102HD 以前)の場合 NAND フラッシュメモリのスペック上の保証書き換え回数である 5000 回に達すると 1 になる。G1 や SSD 320 の場合は 1 に達するのに必要な書き換え回数が異なる可能性がある。 Intel SSD 固有のテクニックほか +クリックで展開 X25/18-M/V G1 G2 の速度低下予防について Intel の自社製コントローラー搭載 SSD はパーティションとして確保していない空き領域を予備領域として使用するため、わざと全領域を確保せずに余らせておくと速度低下しにくくなる効果がある(効果があるピークは全容量の 20% で、それ以上確保しても効果は無いらしい)。特に RAID 環境では Trim が使用出来ない為お勧め。寿命を伸ばす効果もあるが、既に全領域を使用していても十分な寿命がある事が実証されているので寿命目的であれば予備領域の確保は余り意味が無い。また X25-E は出荷時に既に約 25% の予備領域を確保しているのでこちらもあまり効果は無い。予備領域を増やしたい場合は一旦 IDE モードで Secure Erase コマンドで全領域を消去後に未使用領域を余らせた上でパーティションを確保する必要がある。 IDF2009 の資料 2010/4/10 Server Expo 2010 における Intel の天野氏の解説 AnandTech のテスト・解説 HGST (Westen Digital) Ultrastar SSD400S シリーズ +クリックで展開 HDD で有名な HGST は Intel との共同開発で Intel 製 NAND フラッシュ/ SSD コントローラー搭載のエンタープライズ向け SSD を製造する。SAS 版はシーケンシャルリードは最大 535 MB/s、シーケンシャルライトは最大 500 /400 MB/s、4KB 毎のランダム IOPS はリード 46,000 IOPS、ライト 13,000 IOPS となっており競合する東芝製エンタープライズ向け SSD と比較するとシーケンシャルで勝りランダムアクセスでは劣る。 HGST SSD 公式 データシート(PDF) 概略仕様(PDF) スペック一覧 型番 インターフェース 容量(user/搭載量) 形状 シーケンシャルリード/ライト RR4k/RW4k(IOPS)※1 保証書き込み量※2 価格 HUSSL4010ASS600 SAS6Gbps 100GB/128GiB? 2.5"SAS(厚さ15mm) 535/400 MB/s 46,000/13,000 9PB HUSSL4020ASS600 200GB/256GiB? 535/500 MB/s 18PB HUSSL4040ASS600 400GB/512GiB? 35PB HUSSL4010ALF400 FCAL4Gbps 100GB/128GiB? 3.5"FCAL(厚さ15.25mm) 390/340 MB/s 9PB HUSSL4020ALF400 200GB/256GiB? 18PB HUSSL4040ALF400 400GB/512GiB? 35PB ※1 計測条件は不明 ※2 100%ランダム書き込み時 コントローラーチップ Intel EW29AA31AA0 EAL48W57 (ES?) ファームウェア フラッシュメモリ Intel 29F64G08JCND1 ? 訂正不能エラーレート 1/10^16 DRAMキャッシュ DDR2 256MB 以上 (Micron MT47H128M8CF-3 H 128MB * 2 以上) 衝撃耐性(動作中) 2.17, all axes 5 to 700 Hz 振動耐性(動作中) 1000G (0.5ms)/500G (2ms) 動作温度 0~60℃ インターフェース SAS 6Gbps / FC-AL コネクタ形状 SAS / FC-AL 消費電力(アクセス時) 5.5W (平均) 消費電力(待機時) 1.7W (平均) 動作電圧 12V 5V 重量 187g (SAS)227g (FC-AL) ※実装されているチップは Intel 製同様樹脂で固定されている
https://w.atwiki.jp/gpdwin/pages/47.html
Controller CompanionはSteamで販売しているJoyToKeyのようなソフトウェア 12月24日現在ウィンターセール開催中でセール中 GPDWINのSELECT+STARTボタンを同時押しでController Companionオン/オフ タスクトレイアイコンクリック Enabled/Disabled SELECT+START 有効/無効 Turn off Controller SELECT+XBOX 無線コントローラの電源を切る Show button help SELECT+R3 キー割り当て一覧を表示 Open Settings - 設定画面を開く タスクトレイアイコン右クリック Settings... 設定画面を開く Language 言語切替 Hide Icon タスクトレイアイコン非表示 Restart アプリ再起動 Exit アプリ終了 初期配置 左スティック マウス移動 右スティック ホイール 十字キー カーソル上下左右 A 左クリック B Backspace X 右クリック Y メディア:再生/停止 START Enter L1 Ctrl R1 Shift L2 メディア:前の曲 R2 メディア:次の曲 L3 仮想キーボード表示 R3 中ボタンクリック XBOX Steam Big PictureNothingにしても無意味 SELECT+↑/↓ 音量調整 SELECT+A セカンドモニタだけ表示 SELECT+B Escape SELECT+X すべて最小化 SELECT+Y メインモニタだけ表示 SELECT+R2 タスク切り替え(Ctrl+Alt+Tab) SELECT+R3 キー割り当て一覧表示/非表示 SELECT+XBOX PCのシャットダウン 仮想キーボード 十字キー 上下左右 左スティック キー選択 A キー入力 B . (ピリオド) X Backspace Y Space Start Enter L1 Alt R1 Shift L3 仮想キーボードオフ R3 言語切り替え SELECT+R3 キー割り当て一覧表示/非表示 設定 App Run on Startup 起動時に実行 Run on admin popups and sign-in screen サービスとして実行(UACやログイン画面でも動作) Play sounds on disable オン/オフ切替時にサウンドを鳴らす Manual disable per-process instead of system-wide プロセスごとに有効/無効を切り替える Show Balloon-tips バルーンヘルプを表示する Show as In-App in steam Steamアプリ内で表示する Mouse Pointer speed ポインタ速度 Pointer acceleration ポインタの加速 Scroll speed スクロールスピード Profiles Edit bindings キー割り当て Edit Virtual Keyboard bindings 仮想キーボードのキー割り当て Process bindings アプリ毎の設定 Advanced Left Stick Dead Zone 左スティックのあそび調整 Right Stick Dead Zone 右スティックのあそび調整 Setup Xbox Controller Emulator(x360ce) x360ce(Xbox360コントローラ非公式ドライバ)のセットアップ Setup Xbox 360 Chatpad Xbox360キーボードの設定 割り当てられる機能 Mouse Left/Right/Middle/4th/5th mouse button 左/右/中/4/5ボタン Mouse scroll up/down ホイール Mouse scroll up/down(Auto-Repeat) ホイール加速 Mouse speed 200%/150%/125%/75%/50%/25%/10% マウス速度変更 Keyboard Single key 任意のキー Single key (Auto-Repeat) 任意のキー+リピート入力 Combo key 組み合わせキー Combo key (Auto-Repeat) 組み合わせキー+リピート入力 Application Keys メディアキー(検索・スリープ・戻る/進む・メール) IME Keys IME(有効・変換・無変換・かな/カナ) Special Keys 特殊文字キーの割り当て Media Media play/pause 再生/一時停止 Media stop 停止 Media next track 次の曲 Media previous track 前の曲 Volume up 音量+ Volume down 音量- Volume mute 消音 Binding Modifiers Use Secondary Bindings バインドキー押している間だけ別の設定になるボタン Use Alt-1 Bindings バインドキーその2 Use Alt-2 Bindings バインドキーその3 Windows Display Minimize all windows すべて最小化 Open Tsk Swicher タスク切り替え(Ctrl+Alt+Tab) Start menu スタートメニュー Start menu (Xbox One Fix) Controller Companion Steam Custom shortcut 任意アプリ起動 Nothing 何も割り当てない
https://w.atwiki.jp/tohtawa/pages/11.html
Controller(コントローラ) 親クラス AppController 主な変数 主なメソッド set( 変数名 ,変数) $this- set( result ,$list) 設定変数値をViewにて使用できるようにする。 Viewでは $result の形で変数($listの値)を使用可能。 flash( メッセージ , URI $this- flash( 保存しました。 , /posts/show/ .$this- data["Post"]["id"]);
https://w.atwiki.jp/kimikage/pages/49.html
メソッドの存在を保証 using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 Form { /// summary /// フォーム /// /summary public Form1() { InitializeComponent(); proc(new Class1(), "てすと"); } /// summary /// /// /summary /// param name="test" /param /// param name="msg" /param private void proc(ITest test, string msg) { // ITestインタフェースで定義されたメソッドの存在が保障されている test.showMessage(msg); } /// summary /// インタフェース /// /summary interface ITest { void showMessage(string msg); } /// summary /// ITestインタフェースを継承 /// /summary class Class1 ITest { /// summary /// コンストラクタ /// /summary public Class1() { } /// summary /// /// /summary /// param name="msg" /param public void showMessage(string msg) { MessageBox.Show(msg); } } } }
https://w.atwiki.jp/hoi4modtukuritai/pages/32.html
interfaceフォルダは一部画像ファイルの設定に必要。 執筆放置中
https://w.atwiki.jp/keio_math/pages/98.html
general remarks on Interface Builder general remarks Interface BuilderPlace objects from Library Customize each objectClass Name actions("connections") * * general remarks Interface Builder To do list; Place objects from Library Choosing the window you are developping, to see "Library" window click "Library" under "Tools" tab. Customize each object such as size, position and outlets. Class Important settings are Class identity Name actions("connections") Set up the connection with inputs and outputs This should be done in relation to Some objects may have outlet from defaults. * * You can add objects, according to your purpose
https://w.atwiki.jp/musichouse/pages/15.html
Audio Interface USB 名前 メーカ 市場価格 仕様 コメント 入出力数 最大サンプリングビットレート MIDI端子 ファンタム バスパワー 同梱ソフト等 Fast Track USB M-AUDIO 12,800円 2入力2出力 24bit/48kHz 無し 非対応 対応 Ableton Live Lite,inTone Express Bundle - US-122L TASCAM 14,400円 - FireWire PCI/PCIe
https://w.atwiki.jp/wow_qa/pages/23.html
Q)他人の画面を見ると、僕のと全然ちがうんですが? Q)いつからか判らないけど、Mobとか人の頭上にHPバーが出て、大量のMob、人がいると画面がHPバーで埋め尽くされて困るんだけど! Q)スクリーンショットを撮る時、UIの表示などを一括して消す方法はありませんか。 /viewport相当の設定はありませんか。 Q)他人の画面を見ると、僕のと全然ちがうんですが? A)Addonの項目参照 Q)いつからか判らないけど、Mobとか人の頭上にHPバーが出て、大量のMob、人がいると画面がHPバーで埋め尽くされて困るんだけど! A)ctrl + Vキーでparty memberのみのnameplateをon/off Vキー単発だと(party memberとflagが立っている敵対陣営のplayerとmobの)nameplate全体をon/off Q)スクリーンショットを撮る時、UIの表示などを一括して消す方法はありませんか。 /viewport相当の設定はありませんか。 A)デフォルトだと確かAlt+Zでインターフェイスを出したり消したりできる Keybindの設定だとToggle User Interfaceって項目
https://w.atwiki.jp/api_programming/pages/123.html
下位ページ Content Drawables, Views, And Layouts Viewのライフサイクル リソースファイルで Layouts と Drawables を定義するリソース Layout を使うレイアウト定義の一例 レイアウトリソースの使用方法 Drawables User Interface Making a user interface toolkit that can adapt to multiple products is hard, but it is even harder in the Garmin ecosystem. The mechanical designs of these products may be very different depending on the use case the product is designed for. As a result, the user interfaces of Garmin devices also vary by product some have physical buttons, some have coordinate touch screens, and some provide up, down, and action buttons. Rather than design a user interface toolkit that adapts to what device the UI is running on, the Connect IQ SDK makes it easier to port the user interface to different products. At the resource compiler level, we include a way to define a page in XML as well as specify page definitions per product. These tools make it easy to support multiple devices with a single app. Drawables, Views, And Layouts Watch faces と apps ではページスタック(page stack)をもっている。ヴュー(View)はページを表すオブジェクトである。ヴューはページスタックにプッシュしたちポップされたりする。まさにスタック。 ヴューはtransitionを使って、ページスタック上で別のヴューと入れ替えたりもできる。 View が画面。画面の構成を定義するのが Layout。Layout の要素として配置されるのが Drawables 、といったところか? 本家のページより抜粋 Viewのライフサイクル widgets と watch-apps では onStart() ← これはAppBase、つまりプログラム本体の関数WatchUi.Viewが取り込まれる前に実行される onLayout()リソースの読み込み。表示よりも前に実行される。 onShow()ヴューがForegroundに来た時に実行される。 onUpdate()ここで描画を実行。drawはここで使う。 onShow()の後、勝手に実行 WatchUI.requestUpdate()を実行しても、onUpdate()が実行される。 onHide() watchfaces と datafields では onLayout() onShow() onUpdate() class View { // ヴューのエントリポイントがonLayout(). // リソースが読み込まれ、レイアウトがセットされる前に呼ばれている。 // @param [Graphics.Dc] dc The drawing context // @return [Boolean] true if handled, false otherwise function onLayout( dc ); // When the View is brought into the foreground, onShow() is called. // @return [Boolean] true if handled, false otherwise function onShow(); // When a View is active, onUpdate() is used to update dynamic content. // This function is called when the View is brought to the foreground. // For widgets and watch-apps it is also called when WatchUi.requestUpdate() // is called. For watchfaces it is called once a minute and for datafields // it is called once a second. If a class that extends View does not // implement this function then any Drawables contained in the View will // automatically be drawn. // @param [Graphics.Dc] dc The drawing context // @return [Boolean] true if handled, false otherwise function onUpdate( dc ); // Before the View is removed from the foreground, onHide() is called. function onHide(); // Use setLayout() to set the layout for the View. If the extending class // does not override onUpdate(), then all Drawables contained in layout // will automatically be drawn by the View. // @param [Array] layout An array of Drawables function setLayout(layout); } 各ヴューはレイアウト(layout)を持っている。 レイアウトとはDrawablesとよばれる描画オブジェクトの集まりで、各Drawableはビューに置かれる。 Drawableはdrawメソッドを通じて、デバイスコンテキストへ描画される。 どんなDrawableを拡張したオブジェクトも描画オブジェクトで、プロパティはpublicになる。 Monkey C は、基本的はdrawablesとしてレイアウトにリソースとしてText, Bitmapを配置できる。 リソースファイルで Layouts と Drawables を定義する リソース Layout と Drawable は「リソース」ファイルとして定義する(することができる、が正しいか)。これにより Monkey C を扱わずとも、特定のデバイス向けのレイアウトを作成することができる。 加えて DrawableList オブジェクトを can also be defined, which are Drawable objects that can draw a number of graphics primitives. Layout を使う XML上でレイアウトを定義する場合、描画オブジェクトをレイアウトタグの中に並べればよい。リストに並べられた描画オブジェクトはMonkey Cの描画オブジェクトに変換され、次々と描画される。そのため、2つ以上の描画オブジェクトがあれば、1つ目を描画した上から2つ目が描画されることになる。 レイアウト定義の一例 resources layout id="MainLayout" drawable id="MainBackground" / label text="Page Heading" x="10" y="5" font="Gfx.FONT_LARGE" color="Gfx.COLOR_BLACK" / label text="Your information goes here." x="10" y="25" font="Gfx.FONT_MEDIUM" color="Gfx.COLOR_DK_GREY" / /layout /resources レイアウトリソースの使用方法 onLayout(dc)内で、setLayout()で登録 onUpdate(dc)内でView.onUpdate(dc)を呼び出す。ViewのonUpdate(dc)を呼び出さないとほっとかれる。 class MainView { function onLayout( dc ) { setLayout( Rez.Layouts.MainLayout( dc ) ); // レイアウトを読み込み } function onUpdate( dc ) { // Call parent’s onUpdate(dc) to redraw the layout View.onUpdate( dc ); // この下に更にアップデートする必要のあるものを記述 } } Layout タグでサポートされる属性 属性 定義 値 初期値 補足 id 紐付けるためのID番号This is used to reference the layout in the Rez module 半角文字で始まる値 NA 必須 Drawables (ビットマップファイル、drawable XML リソース) を drawable タグ を使って、レイアウトの中に含めることができる。 属性 定義 値 初期値 補足 id drawable の id The ID provided here references the drawable defined in the resource XML file 半角文字で始まる値 NA 必須; resource XML file で定義される必要あり Text can also be included in layouts. To inlude text use the label tag, which supports the following attributes 属性 内容 値 初期値 補足 text 表示する文字列 NA An empty string font フォント Graphics font constant or the ID of a user-defined font Graphics.FONT_MEDIUM x 表示X位置 ピクセル値、もしくは center 0 y 表示X位置 ピクセル値、もしくは center 0 justifcation How the text should be justified in relation to the X Y location Graphics text justify constant Graphics.TEXT_JUSTIFY_LEFT color The color of the text Graphics color constant or a 24-bit integer of 0xRRGGBB 形式 The current draw context’s foreground color Drawables Drawable XML resources consist of a list of basic drawables bitmaps and shapes. To create an XML drawable, define a drawable-list in an XML resource file. Both bitmap and shape tags should be be placed as child nodes inside the drawable-list . An example drawable-list resources drawable-list id="Smiley" background="Gfx.COLOR_YELLOW" shape type="circle" x="10" y="10" radius="5" color="Gfx.COLOR_BLACK" / shape type="circle" x="30" y="10" radius="5" color="Gfx.COLOR_BLACK" / bitmap id="mouth" x="15" y="25" filename="../bitmaps/mouth.png" / /drawable-list /resources To use this drawable in code do the following function onUpdate( dc ) { var mySmiley = new Rez.Drawables.Smiley(); mySmiley.draw( dc ); } The drawable-list tag supports the following attributes Attribute Definition Valid Values Default Value Notes id The ID of the drawable Any string that starts with a character NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 width The width of the drawable list. pixel value or fill fill height The height of the drawable list. pixel value of fill fill foreground The color of elements (shapes and text) drawn in this layout Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color background The background color of this layout Graphics color constant or a 24-bit integer of the form 0xRRGGBB Gfx.COLOR_TRANSPARENT The shape tag supports the following attributes Attribute Definition Valid Values Default Value Notes type The type of the shape to be drawn rectangle, ellipse, circle, or polygon NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 points A list of points which defines the polygon x1, y1], [x2, y2], ... , [xN, yN NA Required for polygon; must have at least 3 points width The width of the shape to be drawn pixel value or fill fill Only valid for ellipse and rectangle height The height of the shape to be drawn pixel value or fill fill Only valid for ellipse and rectangle color The color of the shape to be drawn Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color corner_radius The radius of the rounded corners of the rectangle pixel value 0 Only valid for rectangle radius The radius of the circle pixel value 0 Required for circle border_width The width of the border around the shape pixel value 0 Only valid for rectangle, ellipse, and circle border_color The color of the border around the shape Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color Only valid for rectangle, ellipse, and circle The bitmap tag supports the following attributes Attribute Definition Valid Values Default Value Notes id The ID of the drawable Any string that starts with a character NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 filename The relative path to the image that should be shown A valid, relative path NA Required Input Handling As if input handling wasn’t already one of the most important and complicated pieces of a UI toolkit, Garmin devices take the complication up a level. Unlike those touchable glowing rectangles that are modern smart phones, Garmin devices come in lots of shapes and sizes. Touch screens are not always ideal for all watch products, so there is a mix of input styles and screen technologies. It’s the job of the UI toolkit to make this coherent to the developer. Input and App Types Not all app types have access to input. Watch faces and data fields cannot handle input, though widgets can receive input (may be limited on some devices) and watch-apps will have the most input capability. Input Delegates The Delegate object is an object that implements a certain interface specific to input handling. Monkey C provides a low level InputDelegate that allows handling of events at a basic level. This is good when the app needs to handle button presses or screen presses in a particular way. module WatchUi { // This class implements basic input handling. A developer needs to override // the events they want to handle. class InputDelegate { // Key event // @param evt KEY_XXX enum value // @return true if handled, false otherwise function onKey( evt ); // Click event // @param evt Event object with click information // @return true if handled, false otherwise function onTap( evt ); // Screen hold event. Sent if user is touching // the screen // @param evt Event object with hold information // @return true if handled, false otherwise function onHold( evt ); // Screen release. Sent after an onHold // @param evt Event object with hold information // @return true if handled, false otherwise function onRelease( evt ); // Screen swipe event // @param evt Event function onSwipe( evt ); } } Behaviors Garmin makes products with a purpose, and that purpose can alter the design of one product line over another. Deciding whether a product has a touch screen or has buttons can depend on the environment in which the user will take. For instance, if the product is intended to be used in water (swimming, canoeing, on a boat), it may not have a touch screen. These decisions make for superior products, but also add to developer frustration due to device fragmentation. Most products will support common behaviors (next page, back a page), but how they are executed by the user may differ based on the available input types. To help with this dilemma, Monkey C exposes events at a behavior level. Behaviors separate high-level intentions from the actual input type—next page versus screen press. The BehaviorDelegate is a super class of InputDelegate and maps its low level inputs to common operations across multiple products. Using the BehaviorDelegate can lead to much more portable code. class BehaviorDelegate extends InputDelegate { // When a next page behavior occurs, onNextPage() is called. // @return [Boolean] true if handled, false otherwise function onNextPage(); // When a previous page behavior occurs, onPreviousPage() is called. // @return [Boolean] true if handled, false otherwise function onPreviousPage(); // When a menu behavior occurs, onMenu() is called. // @return [Boolean] true if handled, false otherwise function onMenu(); // When a back behavior occurs, onBack() is called. // @return [Boolean] true if handled, false otherwise function onBack(); // When a next mode behavior occurs, onNextMode() is called. // @return [Boolean] true if handled, false otherwise function onNextMode(); // When a previous mode behavior occurs, onPreviousMode() is called. // @return [Boolean] true if handled, false otherwise function onPreviousMode(); } Built In Handlers In general, complicated input from users and feedback to users should not be done on a wearable device, but should instead be done via a phone app or web page. However, sometimes the device needs to get some form of user input or provide confirmation to the user. WatchUi provides three widgets to handle input menus, the generic picker, and the number picker (the number picker has been deprecated in favor of the generic picker). Two additional handlers provided by WatchUi can be used to give feedback to the user the confirmation dialog and progress dialog. Menu A menu is a list of options for the user. The options are displayed in a list that matches the device the app is running on. A menu can be defined in the resource XML file using the following format menu id="MainMenu" menu-item id="item_1" Item 1 /menu-item menu-item id="item_2" Item 2 /menu-item /menu The resource compiler will then take this XML and generate a Menu object in the Rez module. In order to use this menu, a developer simply needs to push the menu and a delegate for the menu using Ui.pushView() class MyClass extends Ui.View { function openTheMenu() { Ui.pushView( new Rez.Menus.MainMenu(), new MyMenuDelegate(), Ui.SLIDE_UP ); } } class MyMenuDelegate extends Ui.MenuInputDelegate { function onMenuItem(item) { if ( item == item_1 ) { // Do something here } else if ( item == item_2 ) { // Do something else here } } } Generic Picker The Picker class, along with the PickerDelegate and PickerFactory classes, provides applications with the ability to create onscreen lists of user-selectable objects. A picker consists of one or more choosable objects, a title, a next and previous arrow, and a confirm button. The next and previous arrows and the confirm button are device specific but can be overwritten if desired. Pickers are pushed using WatchUi.pushView(), providing a PickerDelegate for the input delegate. A PickerFactory is required to indicate what should be displayed for each pickable value. Sample picker implementations can be found in the Picker sample project, inside the samples/Picker directory. User Interface [Main components of a generic picker layout] The above image is a representation of the general structure of what a picker should look like on a square screen. Other screen formats should have the same layout with some size differences to account for the screen and button layout. The top red bar represents where the title of the picker is displayed. Up and down arrows to scroll through the available options are placed where the green boxes are. The leftmost blue box is where the last item you selected is shown if the picker has multiple selectable items. The center blue box is the item you are currently selecting. The white box will either be the next selectable item in the list or the button to confirm your selection. Development Interface class Picker extends Toybox.WatchUi.View { // Constructor // @param [Dictionary] options @see Picker#setOptions function initialize( options ); // Set the options for the Picker. // @param [Dictionary] options the options for the Picker // @option options [Drawable] title the title for the Picker. Required. // @option options [Array] pattern an Array of [Object] for the Picker to display. If the Array entry is a PickerFactory then it is presented to the user to make a choice. If it is a Drawable then it is display only. Required. // @option options [Array] defaults an Array of [Number] indicating the starting index for each entry in pattern. Optional. // @option options [Drawable] nextArrow a custom next icon for the Picker. Optional. // @option options [Drawable] previousArrow a custom previous icon for the Picker. Optional. // @option options [Drawable] confirm a custom confirm icon for the Picker. Optional. function setOptions( options ); } class PickerDelegate { // Handle a confirm event from a [Picker] // @param [Array] values The chosen values from the Picker. For [Drawable] entries, null will be returned for that value. function onAccept( values ); // Handle a cancel event from a [Picker] function onCancel(); } class PickerFactory { // Generate a Drawable instance for a given item // @param [Number] item Item index // @param [Boolean] isSelected true if the current item is the selected item, false otherwise // @return [Drawable] object to be rendered function getDrawable( item, isSelected ); // Return a representative value for this item // @param [Number] item Item index // @return [Object] Representative item for the given index function getValue( item ); // Get the number of items in the factory // @return [Number] number of items in the factory function getSize(); } Number Picker - DEPRECATED To allow the user to pick or adjust numerical data, the number picker widget is your best bet. The number picker widget allows for editing or adjusting of common numerical types. Here’s an example of number picker use enum { NUMBER_PICKER_DISTANCE, // A Float in meters NUMBER_PICKER_TIME, // A Duration NUMBER_PICKER_TIME_MIN_SEC, // A Duration NUMBER_PICKER_TIME_OF_DAY, // A Duration representing the number of seconds since midnight NUMBER_PICKER_WEIGHT, // A Float in kilograms NUMBER_PICKER_HEIGHT, // A Float in meters NUMBER_PICKER_CALORIES, // A Number NUMBER_PICKER_BIRTH_YEAR // A Number } class NumberPicker { // Constructor // @param mode An enum value of type NUMBER_PICKER_* // @param initialValue The initial value for the Number Picker, type // depends on mode function initialize( mode, initialValue ); } class NumberPickerDelegate { // When a number is chosen, onNumberPicked() is called, passing the // chosen value. // @param value The chosen number, type depends on the NumberPicker mode function onNumberPicked( value ); } Confirmation Dialog The confirmation dialog provides a simple yes/no dialog. This is useful when presenting a simple selection. enum { CONFIRM_NO, CONFIRM_YES } class Confirmation { // Constructor // @param [String] message A textual confirmation message function initialize( message ); } class ConfirmationDelegate { // When a response is chosen, onResponse() is called, passing // the response of CONFIRM_NO or CONFIRM_YES // @param response The response of the confirmation of CONFIRM_NO or CONFIRM_YES function onResponse( response ); } Progress Bar The progress dialog gives a standard wait dialog. It has two modes—one that shows the completion of some process, and a second that acts a wait timer displaying an indeterminate amount of progress. The look and feel of the progress bar will be device-specific. class ProgressBar { // Constructor // @param [String] displayString The string to display on the progress bar view // @param [Float] startValue The initial value for the progress bar (0-100), null for "busy" function initialize( displayString, startValue ); // Use setProgress() to set the value of the progress bar. // @param [Float] progressValue The value for the progress bar (0-100), null for "busy" function setProgress( progressValue ); // Use setDisplayString() to set the string displayed on the progress bar view. // @param [String] displayString The string to display on the progress bar view function setDisplayString( displayString ); }